package com.example.ecommerce.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.ecommerce.dto.RoleDTO;
import com.example.ecommerce.entity.Role;

import java.util.List;

public interface RoleService extends IService<Role> {
    /**
     * 获取角色详情
     */
    RoleDTO getRoleById(Long id);
    
    /**
     * 获取角色列表（分页）
     */
    Page<RoleDTO> getRoleList(Integer page, Integer size, String keyword);
    
    /**
     * 创建角色
     */
    RoleDTO createRole(RoleDTO roleDTO);
    
    /**
     * 更新角色
     */
    RoleDTO updateRole(Long id, RoleDTO roleDTO);
    
    /**
     * 删除角色
     */
    void deleteRole(Long id);
    
    /**
     * 获取所有角色
     */
    List<RoleDTO> getAllRoles();
    
    /**
     * 分配菜单权限
     */
    void assignMenus(Long roleId, List<Long> menuIds);
    
    /**
     * 获取角色的菜单ID列表
     */
    List<Long> getRoleMenuIds(Long roleId);
    
    /**
     * 根据用户ID获取角色列表
     */
    List<RoleDTO> getRolesByUserId(Long userId);
    
    /**
     * 检查角色是否存在
     */
    boolean exists(Long id);
} 